module clkdiv(
    input  wire clk,      // 输入时钟：100 MHz
    input  wire clr,      // 清零信号（低有效）
    output wire clk_200Hz,  // 输出约 190.7 Hz
    output wire clk_1Hz     // 输出约 0.745 Hz
);

    // 增加计数器位宽以支持更低的分频（接近 1 Hz 需要访问 q[26]）
    reg [26:0] q;

    always @(posedge clk or posedge clr) begin
        if (clr == 0)
            // 重置值也需要匹配新的位宽
            q <= 27'd0;
        else
            q <= q + 1;
    end

    // 分频输出
    // 选取 q[18] 位： 100 MHz / 2^(18+1) = 100e6 / 2^19 ≈ 190.73 Hz (最接近 200 Hz)
    assign clk_200Hz = q[17];

    // 选取 q[26] 位： 100 MHz / 2^(26+1) = 100e6 / 2^27 ≈ 0.745 Hz (最接近 1 Hz)
    assign clk_1Hz  = q[26];

endmodule
